home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / newsgroups / misc.20041116-20060924 / 000363_fdc@columbia.edu_Wed Jun 21 12:26:32 2006.msg < prev    next >
Internet Message Format  |  2020-01-01  |  3KB

  1. Path: newsmaster.cc.columbia.edu!not-for-mail
  2. From: Frank da Cruz <fdc@columbia.edu>
  3. Newsgroups: comp.protocols.kermit.misc
  4. Subject: Re: Assigning output from LINEOUT to a variable
  5. Date: 21 Jun 2006 16:26:26 GMT
  6. Organization: Columbia University
  7. Lines: 67
  8. Message-ID: <slrne9ispi.jaj.fdc@sesame.cc.columbia.edu>
  9. References: <1150811644.629253.47720@r2g2000cwb.googlegroups.com> <slrne9g25a.h41.fdc@sesame.cc.columbia.edu> <1150816457.938186.136820@r2g2000cwb.googlegroups.com>
  10. Reply-To: fdc@columbia.edu
  11. NNTP-Posting-Host: sesame.cc.columbia.edu
  12. X-Trace: newsmaster.cc.columbia.edu 1150907186 24891 128.59.59.56 (21 Jun 2006 16:26:26 GMT)
  13. X-Complaints-To: postmaster@columbia.edu
  14. NNTP-Posting-Date: 21 Jun 2006 16:26:26 GMT
  15. User-Agent: slrn/0.9.8.0 (SunOS)
  16. Xref: newsmaster.cc.columbia.edu comp.protocols.kermit.misc:15620
  17.  
  18. On 2006-06-20, toastyboy@googlemail.com <toastyboy@googlemail.com> wrote:
  19. : Regarding parsing the output, here is what I would simply expect to see
  20. : either a 1 or a 0 (depending on the state of the input) followed by a #
  21. : on a new line.
  22. :
  23. : (The # is the command prompt on this device if you like)
  24. :
  25. : See the below extract from an interactive session:
  26. :
  27. : #
  28. : #I1
  29. : 1
  30. : #I2
  31. : 1
  32. : #I3
  33. : 1
  34. : #I4
  35. : 0
  36. : #
  37. :
  38. : What I want is either to set the 0 or 1 as a variable and then based on
  39. : this write out a file with the 0 or 1 in it, or (better still) write
  40. : the 0 or 1 out to a file directly.
  41. :
  42. You want to send a command to this device, get back a single-character
  43. response, and write the response to a file.  This is seemingly
  44. straightforward, but there's a bit more to it, because maybe the device echoes
  45. what you send, and since the single-character responses really come with some
  46. other stuff, such as carriage returns and linefeeds.  What do you want to go
  47. into your file -- a single digit, or the digit followed by carriage return
  48. and/or linfeed?
  49.  
  50. Let's say you want to store <digit><CR><LF>.  Then the above sequence
  51. would be programmed something like this:
  52.  
  53.   clear input        ; start with a clean INPUT buffer
  54.   output \13         ; send a carriage return (\13) to make a prompt appear
  55.   input 5 \#         ; wait 5 sec for the '#' prompt
  56.   if fail stop 1     ; make sure we got it
  57.   output I1\13       ; Send "I1" and a carriage return 
  58.  
  59.   ; Let's assume the devices echoes "I1<CR><LF>"
  60.  
  61.   input 5 I1\13\10   ; Absorb the echo
  62.   if fail ...        ; Do something if the echo does not appear
  63.   clear input        ; clear the input buffer again
  64.   input 5 \10        ; Input everything up to a linefeed
  65.   if fail ...
  66.  
  67.   ; At this point \v(input) should contain the resonse.
  68.   ; Now you can write it to a file.
  69.  
  70.   fopen /write \%c somefilename
  71.   if fail ...
  72.   fwrite /line \%c \ftrim(\v(input))
  73.   fclose \%c
  74.  
  75. and so on for I2, I3, and I4.  I didn't show what to do on failure,
  76. that's up to you.  Maybe there is some corrective action you can take.
  77. You can loop and try again, whatever.  The statement:
  78.  
  79.   fwrite /line \%c \ftrim(\v(input))
  80.  
  81. trims the CRLF from the response, and then writes it to disk in native
  82. format for a line, which is not necesarily text terminated by CRLF.
  83.  
  84. - Frank